Loci: Simple Thread-Locality for Java

نویسندگان

  • Tobias Wrigstad
  • Filip Pizlo
  • Fadi Meawad
  • Lei Zhao
  • Jan Vitek
چکیده

This paper presents a simple type system for thread-local data in Java. Classes and types are annotated to express thread-locality and unintended leaks are detected at compile-time. The system, called Loci, is minimal, modular and compatible with legacy code. The only change to the language is the addition of two new metadata annotations. We implemented Loci as an Eclipse plug-in and used it to evaluate our design on a number of benchmarks. We found that Loci is compatible with how Java programs are written and that the annotation overhead is light thanks to a judicious choice of defaults.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Locality Reasoning of Multithreaded Programs through Type Inference

In multithreaded object-oriented programs, locality refers to the dynamic scoping relation among threads and objects in a potentially shared-memory context. This paper calls for type-theoretic investigations into two forms of locality – thread locality and aggregate locality – and proposes a unified type inference algorithm to reason about them over unannotated real-world Java programs.

متن کامل

Multithreaded Collision Detection in Java

This paper examines the implementation of a multithreaded algorithm for doing collision detection and processing in Java. It examines details of an efficient implementation in Java for single threading, then describes the methods used to implement multithreading. The method described takes advantage of the spatial locality of collisional dynamics while efficiently dealing with the requirements ...

متن کامل

Java Locks: Analysis and Acceleration by

This dissertation presents several techniques to accelerate Java locks based on the analyses of their behavior from various viewpoints. Ten years have passed since Java was announced, and now the language has come to be used in various fields including large-scale Web services. To make such applications practical, performance improvements for the Java execution environments are indispensable. I...

متن کامل

The abc Group Racer : Effective Race Detection Using AspectJ

Programming errors occur frequently in large software systems, and even more so if these systems are concurrent. In the past researchers have developed specialized programs to aid programmers detecting concurrent programming errors such as deadlocks, livelocks, starvation and data races. In this work we propose a language extension to the aspect-oriented programming language AspectJ, in the for...

متن کامل

OCTET: Practical Concurrency Control for Dynamic Analyses and Systems

Parallel programming is essential for reaping the benefits of parallel hardware, but it is notoriously difficult to develop and debug reliable, scalable software systems. One key challenge is that modern languages and systems provide poor support for ensuring concurrency correctness properties—such as atomicity, sequential consistency, and multithreaded determinism—because all existing approach...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2009